create table L2_STAR_SCHEMA.AGG_FACT_DAILY_SALES
(
  GAIN       float not null,
  COGS       float not null,
  MARGIN     float not null,
  DAY        date  not null,
  SHOP_ID    int   not null,
  [#RECEIPT] int   not null
)

INSERT INTO L2_STAR_SCHEMA.AGG_FACT_DAILY_SALES
select SUM(_FATTURATO_NI_SC_)                                as GAIN,
       SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
       (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
       _giorno_                                              as DAY,
       _negozio_id_                                          as SHOP_ID,
       count(distinct _NUMERO_SCONTRINO_)                    as #RECEIPT
from L2_STAR_SCHEMA.FACT_SALES_SS
Group by _giorno_, _negozio_id_;

TRUNCATE TABLE L2_STAR_SCHEMA.AGG_FACT_DAILY_SALES;
--------------------------------------------------------------------

create table L2_STAR_SCHEMA.AGG_FACT_QUARTER_SALES
(
  GAIN       float not null,
  COGS       float not null,
  MARGIN     float not null,
  QUARTER    int   not null,
  YEAR       int   not null,
  SHOP_ID    int   not null,
  [#RECEIPT] int   not null
)

INSERT INTO L2_STAR_SCHEMA.AGG_FACT_QUARTER_SALES
select SUM(_FATTURATO_NI_SC_)                                as GAIN,
       SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
       (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
       L2_STAR_SCHEMA.DIM_DATE_SS.Quarter                    as QUARTER,
       L2_STAR_SCHEMA.DIM_DATE_SS.Year                       as YEAR,
       _negozio_id_                                          as SHOP_ID,
       count(distinct _NUMERO_SCONTRINO_)                    as #RECEIPT
from L2_STAR_SCHEMA.FACT_SALES_SS,
     L2_STAR_SCHEMA.DIM_DATE_SS
Where L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
Group by L2_STAR_SCHEMA.DIM_DATE_SS.Quarter, _negozio_id_, L2_STAR_SCHEMA.DIM_DATE_SS.Year;

TRUNCATE TABLE L2_STAR_SCHEMA.AGG_FACT_QUARTER_SALES;
------------------------------------------------------------------------------------------

create table AGGREGATE.AGG_FACT_MONTHYY_SALES
(
  GAIN       float         not null,
  COGS       float         not null,
  MARGIN     float         not null,
  MONTHYY    varchar(1000) not null,
  SHOP_ID    int           not null,
  [#RECEIPT] int           not null,
  FlagOpen   int           not null
)

--INSERT INTO AGGREGATE.AGG_FACT_MONTHYY_SALES
select SUM(_FATTURATO_NI_SC_)                                as GAIN,
       SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
       (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
       L2_STAR_SCHEMA.DIM_DATE_SS.MonthYear                  as MONTHYY,
       _negozio_id_                                          as SHOP_ID,
       count(distinct _NUMERO_SCONTRINO_)                    as #RECEIPT,
       case when sUM(_FATTURATO_NI_SC_) <=5000 then 0 else 1  end as FlagOpen
from L2_STAR_SCHEMA.FACT_SALES_SS,
     L2_STAR_SCHEMA.DIM_DATE_SS
Where L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
Group by L2_STAR_SCHEMA.DIM_DATE_SS.MonthYear, _negozio_id_
  order by 7;

TRUNCATE TABLE AGGREGATE.AGG_FACT_MONTHYY_SALES;


--------------------------------------------------------------------------------------

  select  L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_             	  as SHOP_ID,
                SUM(_FATTURATO_NI_SC_)                                as GAIN,
                SUM(_COSTO_VENDUTO_NI_SC_)                            as COGS,
                (SUM(_FATTURATO_NI_SC_) - SUM(_COSTO_VENDUTO_NI_SC_)) as MARGIN,
                L2_STAR_SCHEMA.DIM_DATE_SS.Year                       as Year,
                L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_             as SHOP,
                count(distinct _NUMERO_SCONTRINO_)                    as #RECEIPT,
                max (L2_STAR_SCHEMA.DIM_DATE_SS.Year)                 as ClosingYear,
         case
         when  max (L2_STAR_SCHEMA.DIM_DATE_SS.Year) = 2017 then 'Close'
         else 'Open' end
         as FlagOpen2018
  from
     L2_STAR_SCHEMA.FACT_SALES_SS, L2_STAR_SCHEMA.DIM_DATE_SS,L2_STAR_SCHEMA.DIM_SHOP_SS
  Where
     L2_STAR_SCHEMA.FACT_SALES_SS._GIORNO_ = L2_STAR_SCHEMA.DIM_DATE_SS.Date
     and L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_ID_ = L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_
     and L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_ not like'%*%'
  Group by
     L2_STAR_SCHEMA.FACT_SALES_SS._NEGOZIO_ID_,
     L2_STAR_SCHEMA.DIM_SHOP_SS._NEGOZIO_DESC_,
     L2_STAR_SCHEMA.DIM_DATE_SS.Year;